指定された文字列に対してソート・キー値を戻します。
NLSSORT (String [,'NLS_SORT = SortName'])
NLSSORTには、次のパラメータがあります。
次の例は、文字列のバイナリ値ではなく、言語ソート順序に基づいたソートおよび比較の処理を示しています。また、この例は、ALTER SESSION... SET NLS_SORT文を使用することによって同じ結果が得られることも示しています。
Command> CREATE TABLE NsortDemo (Name VARCHAR2 (15));
Command> INSERT INTO NsortDemo VALUES ('Gaardiner');
1 row inserted.
Command> INSERT INTO NsortDemo VALUES ('Gaberd');
1 row inserted.
Command> INSERT INTO NsortDemo VALUES ('Gaasten');
1 row inserted.
Command> # Perform Sort
Command> SELECT * FROM NsortDemo ORDER BY Name;
< Gaardiner >
< Gaasten >
< Gaberd >
3 rows found.
Command> #Use function to perform Sort
Command> SELECT * FROM NsortDemo ORDER BY NLSSORT (Name, 'NLS_SORT = XDanish');
< Gaberd >
< Gaardiner >
< Gaasten >
3 rows found.
Command># comparison operation
Command> SELECT * FROM NsortDemo where Name > 'Gaberd';
0 rows found.
Command> #Use function in comparison operation
Command> SELECT * FROM NsortDemo WHERE NLSSORT (Name, 'NLS_SORT = XDanish') >
> NLSSORT ('Gaberd', 'NLS_SORT = XDanish');
< Gaardiner >
< Gaasten >
2 rows found.
Command> #Use ALTER SESSION to obtain the same results
Command> ALTER SESSION SET NLS_SORT = 'XDanish';
Command> SELECT * FROM NsortDemo ORDER BY Name;
< Gaberd >
< Gaardiner >
< Gaasten >
3 rows found.
Command> SELECT * FROM NsortDemo where Name > 'Gaberd';
< Gaardiner >
< Gaasten >
2 rows found.
次の例では、言語索引を作成します。
Command> CREATE INDEX DanishIndex ON NsortDemo (NLSSORT (Name, 'NLS_SORT = XDanish'));
Command> indexes N%;
Indexes on table USER1.NSORTDEMO:
DANISHINDEX: non-unique T-tree index on columns:
NLSSORT(NAME,'NLS_SORT = XDanish')
1 index found.
1 table found.